Comparing Curried and Uncurried Rewriting

نویسندگان

  • Richard Kennaway
  • Jan Willem Klop
  • M. Ronan Sleep
  • Fer-Jan de Vries
چکیده

Currying is a transformation of term rewrite systems which may contain symbols of arbitrary arity into systems which contain only nullary symbols, together with a single binary symbol called application. We show that for all term rewrite systems (whether orthogonal or not) the following properties are preserved by this transformation: strong normalization, weak normalization, weak Church-Rosser, completeness, semi-completeness, and the non-convertibility of distinct normal forms. Under the condition of leftlinearity we show preservation of the properties NF (if a term is reducible to a normal form, then its reducts are all reducible to the same normal form) and UN (a term is reducible to at most one normal form). We exhibit counterexamples to the preservation of NF and UN for non-left linear systems. The results extend to partial currying (where some subset of the symbols are curried), and imply some modularity properties for unions of applicative systems.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

LETOS - a lightweight execution tool for operational semantics

syntax Curried ADT Uncurried ADT Uncurried ADT + list arity Parsing no no yes (Metal)

متن کامل

Graphical and Incremental Type Inference: A Graph Transformation Approach

We present a graph grammar based type inference system for a totally graphic development language. NiMo (Nets in Motion) can be seen as a graphic equivalent to Haskell that acts as an on-line tracer and debugger. Programs are process networks that evolve giving total visibility of the execution state, and can be interactively completed, changed or stored at any step. In such a context, type inf...

متن کامل

Syntactic Function-Based Chinese Lexical Categories and Category Grammar Parsing

By merging syntactic categories of word classes, lexical categories were obtained. By demonstrating combination and type raising rules respectively from curried and uncurried perspectives, a category combination algorithm was presented, in which application, composition and type raising rules were sequentially examined, and the first available rule was selected. A Chinese CCG parser was develop...

متن کامل

A verified framework for higher-order uncurrying optimizations

Function uncurrying is an important optimization for the efficient execution of functional programming languages. This optimization replaces curried functions by uncurried, multiple-argument functions, while preserving the ability to evaluate partial applications. First-order uncurrying (where curried functions are optimized only in the static scopes of their definitions) is well understood and...

متن کامل

Confluence of Curried Term-Rewriting Systems

Reduction Systems Definition An Abstract Reduction System short ARS consists of a set A and a sequence i of binary relations on A labelled by some set I We often drop the label if I is a singleton We write A j P if the ARS A A i i I has the property P Further we write A j P Q i A j P and A j Q An ARS A A has the diamond property A j i It has the Church Rosser property is con uent A j CR i A j G...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • J. Symb. Comput.

دوره 21  شماره 

صفحات  -

تاریخ انتشار 1996